Products
Trial Software
Customer Support
About Imagix
Economic Analysis
Related Web Sites
As a software developer, you're seeing the costs of working with ever-growing mountains of existing source code. Key engineers, who have the experience and expertise to lead new development efforts, are stuck maintaining their old code. New hires take too long to get up to speed. Enhancement efforts stretch out and new project starts slip, as time is spent figuring out how the current software works. Bugs are introduced when changes are made without adequately understanding their impact.
However, you can't just walk away from the existing software. It represents a major asset for your company; indeed, another form of program understanding cost occurs when difficulties locating and extracting existing code cause nearly identical routines to be written time and again. What you need is a tool to speed code comprehension.
Imagix 4D helps software developers understand C and C++ software that is complex, large, or unfamiliar. With Imagix 4D's browse, explore, analyze, and document functions, you're able to speed your development, enhancement, reuse, and testing.
A comprehensive program understanding tool, Imagix 4D enables you to rapidly check or systematically study your software on any level -- from its high level architecture to the details of its build, class, and function dependencies. You can visually explore a wide range of aspects about your software - control structures, data usage, and inheritance. You're also able to create design documentation automatically, further leveraging the information Imagix 4D collects about your software.
And Imagix 4D is priced so affordably, you're able to put a copy on every developer's workstation.
Imagix 4D is a tool to help you browse, explore, analyze, and document your software easier, faster, and more productively. Imagix 4D presents information about the key aspects of your software in a 3D graphical format, and enables you to quickly focus those views to answer the particular questions you're facing.
Each of the views created by Imagix 4D describe your software from a different aspect. You're able to eliminate extraneous information, and see just that information which is relevant to your current question.
These views go far beyond traditional call graphs and class hierarchies. From file-level build relationships to new ways of viewing class relationships, you're able to see important aspects of your software in intuitive, quickly understandable ways. Questions about variable usage, test coverage, and system performance are all addressed by optimized views.
To present the views of the entities and their relationships, Imagix 4D makes use of three-dimensional graphics. You're able to see and comprehend much more information than is possible with a two-dimensional view.
Each display builds on the previous display. Your exploration is not a series of disjoint steps, but an easy progression through displays, following your natural train of thought.
For example, you may start by examining your control flow, and isolate particular functions you're interested in. When you switch to the Calls and Variables view, just those variables used by those functions are added. If you then want to see what class relationships are involved, just the classes containing the functions and variables are shown.
By examining the source code details while graphically seeing their context, you're able to achieve rapid, accurate comprehension of your software.
Imagix 4D produces two formats in addition to ASCII. You can create formal documents through RTF, exporting the Imagix 4D output to your word processor and modifying the fonts, adding a table of contents, etc. And for on-line documentation, the HTML output comes with the hyperlinks already set up.
What makes this exploration possible is the knowledge base that Imagix 4D develops about your software. Acquiring data from a number of sources, Imagix 4D creates an extensive, cohesive, integrated database about your software. By automating this data collection and data integration, Imagix 4D eliminates much of the time-consuming work you would have to do in studying your software manually.
For information about the structure and content of your software, Imagix 4D uses either your source code itself or the source browser (.sb) database created by your SPARCompiler. For C++, this ensures that Imagix 4D understands your code the same way your compiler does, overcoming any compiler idiosyncrasies.
Your makefiles are used as the source for build dependency information. File data, such as ownership, permissions, and modification dates, is pulled from directly from your file system. For performance and test coverage profiling, Imagix 4D extracts information from tcov and gprof data files. You're able to generate profiling information easily, by compiling your code with the appropriate switches and then running your executables.
An example of this is the Coverage mode, used for analyzing how thoroughly your tests are exercising your code. In Coverage mode, you're able to view the calling hierarchy of your program. Within this hierarchy, you can see how thoroughly each function has been executed, and which of the potential calls in the program have actually been made. And when you open the source code in an editor, you see how often each block has been executed.
To create this view, Imagix 4D collects procedural hierarchy information from the SPARCompiler source browser database, the coverage information from tcov data files, and calls-made info from gprof. All of this information is seamlessly integrated and presented to you. You're able to spend your time analyzing what further testing you need to do, rather than figuring out what your current tests have exercised.